package com.example.hxds.bff.customer.feign;

import com.example.hxds.bff.customer.controller.form.InsertOrderForm;
import com.example.hxds.common.util.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;


/**
 * @program: hxds
 * @description: feign代理Odr-订单微服务的相关接口
 * @author: noah2021
 * @date: 2023-01-14 01:01
 **/
@FeignClient(value = "hxds-odr")
public interface OdrServiceApi {

    /**
     * 插入订单
     * @param form
     * @return
     */
    @PostMapping("/order/insertOrder")
    R insertOrder(InsertOrderForm form);


    /**
     * 查询订单状态
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderStatus")
    R searchOrderStatus(SearchOrderStatusForm form);


    /**
     * 删除未接单订单
     * @param form
     * @return
     */
    @PostMapping("/order/deleteUnAcceptOrder")
    R deleteUnAcceptOrder(DeleteUnAcceptOrderForm form);


    /**
     * 查询订单是否接单
     * @param form
     * @return
     */
    @PostMapping("/order/hasCustomerCurrentOrder")
    R hasCustomerCurrentOrder(HasCustomerCurrentOrderForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderForMoveById")
    R searchOrderForMoveById(SearchOrderForMoveByIdForm form);


    /**
     * 确认到达
     * @param form
     * @return
     */
    @PostMapping("/order/confirmArriveStartPlace")
    R confirmArriveStartPlace(ConfirmArriveStartPlaceForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    @PostMapping("/order/searchOrderById")
    R searchOrderById(SearchOrderByIdForm form);


    /**
     * 验证是否可以支付
     * @param form
     * @return
     */
    @PostMapping("/order/validCanPayOrder")
    R validCanPayOrder(ValidCanPayOrderForm form);


    /**
     * 支付订单
     * @param form
     * @return
     */
    @PostMapping("/bill/updateBillPayment")
    R updateBillPayment(UpdateBillPaymentForm form);


    /**
     * 更新订单支付信息
     * @param form
     * @return
     */
    @PostMapping("/order/updateOrderPrepayId")
    R updateOrderPrepayId(UpdateOrderPrepayIdForm form);


    /**
     *
     * @param form
     * @return
     */
    @PostMapping("/order/updateOrderAboutPayment")
    R updateOrderAboutPayment(UpdateOrderAboutPaymentForm form);


    /**
     * 评论
     * @param form
     * @return
     */
    @PostMapping("/comment/insertComment")
    R insertComment(@RequestBody @Valid InsertCommentForm form);


    /**
     * 查询订单
     * @param form
     * @return
     */
    @PostMapping("/order/searchCustomerOrderByPage")
    R searchCustomerOrderByPage(SearchCustomerOrderByPageForm form);


    /**
     * 查询订单评价
     * @param form
     * @return
     */
    @PostMapping("/comment/searchCommentByOrderId")
    R searchCommentByOrderId(SearchCommentByOrderIdForm form);
}
